package com.celi.scs.common.entity.sys;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.util.List;

/**
 * @Author jiangshengjun
 * @Date 2024/8/27
 * @Description
 */
@Data
public class DlResponse<T> {

    private Integer code;
    private String msg;
    private T data;


    @Data
    public static class KqDataEntity {
        @JSONField(name = "next_id")
        private Integer nextId;
        private List<UserKqData> data;
    }

    @Data
    public static class UserRes {
        private Integer total;
        private List<UserInfo> rows;
    }

    @Data
    public static class UserInfo {
        /**
         * id : 123
         * ext_id : 2
         * name : 张三
         * mobile : 18600000000
         * employee_num : 001
         */

        private String id;
        @JSONField(name = "extId")
        private String ext_id;
        private String name;
        private String mobile;
        @JSONField(name = "employee_num")
        private String employeeNum;
    }

    @Data
    public static class UserKqData {

        /**
         * id : 123
         * user_id : 用户ID
         * ext_id : 12345 打卡人员在外部系统的id；
         * terminal_id : DL-D7_0000001 打卡数据的终端id
         * check_type : 打卡方式。包括：
         * fa: 人脸；
         * fp: 指纹；
         * pass: 密码；
         * card: 刷卡；
         * app_scan: APP扫码；
         * gps: gps位置打卡；
         * wifi: wifi打卡；
         * out_work: 外勤打卡；
         * reissue: 补签申请；
         * flexible: 自动补的灵活卡；
         * check_time : 1503025335 打卡时间戳，精确到秒；
         * check_data : 打卡数据 打卡补充数据，不同的打卡类型则返回不同的数据
         */
        private int id;
        @JSONField(name = "user_id")
        private String userId;
        @JSONField(name = "ext_id")
        private String extId;
        @JSONField(name = "terminal_id")
        private String terminalId;
        @JSONField(name = "check_type")
        private String checkType;
        @JSONField(name = "check_time")
        private Long checkTime;
        @JSONField(name = "check_data")
        private String check_data;
    }

    @Data
    public static class KqCheckData {
        /**
         * cmd : checkin
         * device_name : 人脸考勤机D6S
         * employee_num : 27063526
         * dept_id : 11
         * dept_name : 财务部
         * member_name : 解丽娜
         */
        private String cmd;
        @JSONField(name = "device_name")
        private String deviceName;
        @JSONField(name = "employee_num")
        private String employeeNum;
        @JSONField(name = "dept_id")
        private int deptId;
        @JSONField(name = "dept_name")
        private String deptName;
        @JSONField(name = "member_name")
        private String memberMame;
    }

}
